package com.cupk.rotaryguard.monitor.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cupk.common.base.utils.result.Result;
import com.cupk.rotaryguard.monitor.entity.DeviceInfo;
import com.cupk.rotaryguard.monitor.entity.vo.DeviceVo;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author tjy
 * @date 2023/3/26
 * @apiNote
 */
public interface DeviceService extends IService<DeviceInfo> {
    /**
     * 获取设备信息
     *
     * @return
     */
    Result getDeviceInfo();

    /**
     * 根据id查询设备信息
     *
     * @param id
     * @return
     */
    Result getDeviceInfoById(Long id);

    /**
     * 根据型号、频率、功率查询设备状态
     *
     * @param deviceModel
     * @param deviceFrequency
     * @param devicePower
     * @param status
     * @return
     */
    Result getDeviceInfoByParams(Integer pageNum, Integer pageSize, String deviceModel, BigDecimal deviceFrequency, BigDecimal devicePower, Integer status);

    /**
     * 删除
     *
     * @param ids
     * @return
     */
    Result delDevice(List<Integer> ids);

    /**
     * 添加设备
     *
     * @param deviceVo
     * @return
     */
    Result addDevice(DeviceVo deviceVo);

    /**
     * 更新设备信息
     *
     * @param id
     * @param deviceModel
     * @param deviceFrequency
     * @param devicePower
     * @return
     */
    Result chDeviceInfo(Long id,
                        String deviceModel,
                        BigDecimal deviceFrequency,
                        BigDecimal devicePower);

    /**
     * 根据id删除设备信息
     *
     * @param id
     * @return
     */
    Result delDeviceById(Integer id);

    /**
     * 获取运行中设备数量
     *
     * @return
     */
    Result getRunningDeviceCount();

    /**
     * 获取总数量
     *
     * @return
     */
    Result getDeviceCount();
}
